home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
pao
/
towns
/
paolib
/
sample
/
drvchk.c
< prev
next >
Wrap
Text File
|
1991-10-18
|
2KB
|
83 lines
/******************************************************************************
**
** ドライブ( A: ~ P: )の状態をチェックするプログラムです。
**
** ドライブ Q: ( CD ) は、cdr_cdinfo() で確認できます。
** cdr_cdinfo() では、CD の READY 状態の他に CD-ROM かどうかの確認
** もできます。
** (注) CD の回転が停止している時には、エラーの返ってくる確率が高い
** ので、必ず 3 ~ 5 回くらいはリトライ処理をして確認する必要が
** あります。
**
** < History >
** 1990.02.07 : CREATE
**
** < note > : TABS = 4
**
** Programmed by Y.Hirata ( Nifty ID : NAB03321 )
**
******************************************************************************/
pragma Off (Floating_point) ;
#include <stdio.h>
#include "hc.h"
/**************************** ★ メイン ★ *********************************/
void main()
{
unsigned char c, st ;
for ( c=0; c<16; c++ ) {
printf( "\nDRIVE %d(%c:) STATUS..............\n",c,(c+'A') ) ;
/*---------- DRIVE CHECK ----*/
st = DRV_status( c ) ;
if ( ((st & 0xf0) >> 4) == DRV_FD )
printf( "-- FD --\n" ) ;
else if ( ((st & 0xf0) >> 4 ) == DRV_HD )
printf( "-- HD --\n" ) ;
else if ( ((st & 0xf0) >> 4 ) == DRV_RAM )
printf( "-- RAM --\n" ) ;
else if ( ((st & 0xf0) >> 4 ) == DRV_ROM )
printf( "-- ROM --\n" ) ;
else
printf( "-- ??? --\n" ) ;
if ( st == DEV_ERR ) {
printf( "DRIVE is ILLEGAL .....!!!\n" ) ;
} else {
if ( (st & 0x01) == 0x01 ) {
printf( "DRIVE is NOT READY ....!!!" ) ;
if ( (st & 0x04) == 0x04 ) {
printf( " ( SINGLE DRIVE MODE )" ) ;
printf( "\n→ " ) ;
if ( (st & 0x08) == 0x08 )
printf( "Can't use FD...!!! ( UNformat )" ) ;
else if ( (st & 0x02) == 0x02 )
printf( "WRITE PROTECT ON ...!" ) ;
if ( !(st & 0x0b) )
printf( "DRIVE is (read/write)OK!\n" ) ;
printf( "st = %04xH",st ) ;
}
printf( "\n" ) ;
} else if ( ((st & 0xf0) >> 4) == DRV_FD ) {
if ( (st & 0x08) == 0x08 )
printf( "Can't use FD...!!! ( UNformat )\n" ) ;
else if ( (st & 0x02) == 0x02 )
printf( "WRITE PROTECT ON ...!\n" ) ;
if ( !(st & 0x0b) )
printf( "DRIVE is (read/write)OK!\n" ) ;
} else if ( ((st & 0xf0) >> 4) == DRV_HD ||
((st & 0xf0) >> 4) == DRV_RAM ) {
printf( "DRIVE is (read/write)OK!\n" ) ;
} else if ( ((st & 0xf0) >> 4) == DRV_ROM ) {
printf( "DRIVE is READ ONLY ...!\n" ) ;
} else {
printf( "?????\n" ) ;
}
}
}
}